import axios from "axios";
import useToken from "../stores/token";
import config from "../config";
import router from "../router";
import { showLoadingToast, showToast, closeToast } from "vant";
const baseURL = config.baseURL;
const service = axios.create({ baseURL });
// 请求拦截器
service.interceptors.request.use((config) => {
  const { token } = useToken();
  showLoadingToast({
    message: "加载中...",
    forbidClick: true,
    loadingType: "spinner",
  });
  if (token) {
    config.headers.jwt = token;
  }
  return config;
});
// 响应拦截器
service.interceptors.response.use(
  (response) => {
    closeToast();
    const { errno, data, errmsg } = response.data;
    if (errno === 0) {
      if (errmsg !== "") {
        showToast({
          message: errmsg,
          type: "success",
        });
      }
      return data || true;
    }
    showToast({
      message: errmsg,
      type: "error",
    });
    if (errno === 2) {
      router.push({ name: "login" });
    }
    return false;
  },
  (error) => {
    closeToast();
    showToast({
      message: "请求失败",
      type: "fail",
    });
    console.log(error);
  }
);
export default service;
